import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Reader {

	private ArrayList<Entrada> entradas;
	private String linha;

	/**
	 * Realiza a leitura da base de dados da RNA.
	 * 
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	public void lerArquivo() throws FileNotFoundException, IOException {

		FileReader file = new FileReader("basededados.txt");
		BufferedReader dadosLidos = new BufferedReader(file);

		linha = dadosLidos.readLine();
		String[] leitura = null;

		while (linha != null) {
			if (!linha.contains("?")) {

				leitura = linha.split(",");

				entradas.add(converterLeituraEmEntrada(leitura));
			}
			linha = dadosLidos.readLine();
		}
	}

	/**
	 * 
	 * @return Retorna o conjunto de entradas da base de bados.
	 */
	public ArrayList<Entrada> getEntradas() {
		return entradas;
	}

	/**
	 * Converte a leitura de cada linha do arquivo em uma entrada.
	 * 
	 * @param leitura
	 *            A leitura de uma linha convertida em String[].
	 * @return Retorna a entrada equivale ao dado lido.
	 */
	private Entrada converterLeituraEmEntrada(String[] leitura) {
		String nome = leitura[0];
		double rendaMensal = new Double(leitura[1]);
		boolean rendaEstavel = new Boolean(leitura[2]);
		boolean nomeSujo = new Boolean(leitura[3]);
		boolean ensinoSuperior = new Boolean(leitura[4]);
		boolean casaPropria = new Boolean(leitura[5]);
		int tempoDeTrabalho = new Integer(leitura[6]);
		boolean mereceCredito = new Boolean(leitura[7]);

		Entrada entrada = new Entrada(nome, rendaMensal, rendaEstavel,
				nomeSujo, ensinoSuperior, casaPropria, tempoDeTrabalho,
				mereceCredito);

		return entrada;
	}
	
	public void gravaArquivo(String peso){
		try {
			BufferedWriter out = new BufferedWriter(new FileWriter("pesos.txt"));
			out.write(peso);
			out.close();
			} catch (IOException e) {
			}
	}
}
